type MapIPerson<T> = {
    readonly [Property in keyof T]?: T[Property]
}

interface IPerson {
    name: string
    age: number
    height: number
    address: string
}

type IPersonOptional = MapIPerson<IPerson>

const p: IPersonOptional = {

}

export {}